<style>
    .layui-form-label {
        width: auto;
    }

    .layui-input, .layui-form-select {
        max-width: 500px;
    }

    .input-samll {
        max-width: 200px;
    }

    .upload_file {
        padding-left: 0;
    }
    .layui-form{
        display: none;
    }
</style>
{volist name="fields" id="field"}

{if condition="$field['is_show'] == 4"}
{php}isset($data[$field['name']]) || $data[$field['name']] = input($field['name']); {/php}
<input type="hidden" name="{$field.name}" value="{$data[$field['name']]}">
{/if}
{if condition="$field['is_show'] == 1 || $field['is_show'] == 3 || ($field['is_show'] == 5 && I($field['name']) )"}
{php}isset($data[$field['name']]) || $data[$field['name']] = ''; {/php}
<div class="layui-form-item" show-set='{$field.show_set|json_encode}'>
    <label class="layui-form-label">
        {notempty name="field.is_must"}<span class="need_flag">*</span>{/notempty}
        {$field['title']}
    </label>
    <div class="layui-input-block">
        {switch name="field.type"}
        {case value="num"}
        <input type="number" class="layui-input input-samll" name="{$field.name}" value="{$data[$field['name']]}">
        {/case}
        {case value="textarea"}
        <textarea name="{$field.name}" class="layui-textarea">{$data[$field['name']]}</textarea>
        {/case}
        {case value="datetime"}
        <input type="datetime" autocomplete="off" name="{$field.name}" class="layui-input input-samll time"
               value="{$data[$field['name']]|time_format}" placeholder="请选择时间"/>
        {/case}
        {case value="date"}
        <input type="datetime" autocomplete="off" name="{$field.name}" class="layui-input input-samll date"
               value="{$data[$field['name']]|time_format='Y-m-d'}" placeholder="请选择时间"/>
        {/case}
        {case value="radio"}
        {volist name="field.extra_array" id="vo"}
        <input type="radio" name="{$field.name}" value="{$key}" title="{$vo}" {eq name="data[$field['name']]" value="$key" }checked{/eq} >
        {/volist}
        {/case}
        {case value="bool"}
        <input type="hidden" name="{$field.name}" value="0" /><!--解决开关关闭状态下值不能提交到后台问题-->
        <input type="checkbox" name="{$field.name}" lay-skin="switch" lay-text="{$field.extra_array[1]}|{$field.extra_array[0]}" value="1" {eq name="data[$field['name']]" value="1" }checked{/eq}>
        {/case}

        {case value="select|dynamic_select"}
        <select name="{$field.name}" lay-filter="{$field.name}">
            {volist name="field.extra_array" id="vo"}
            <option value="{$key}" {eq name="data[$field['name']]" value="$key" }selected{/eq}
            >{$vo}
            </option>
            {/volist}
        </select>
        {/case}
        {case value="cascade"}
        {:W('common/cascade/cascade',
        array('name'=>$field['name'],'value'=>$data[$field['name']],'extra'=>$field['extra']))}
        {/case}
        {case value="material"}

        {:W('common/material/material',
        array('name'=>$field['name'],'value'=>$data[$field['name']],'extra'=>$field['extra']))}
        {/case}
        {case value="prize"}

        {:W('common/prize/prize',
        array('name'=>$field['name'],'value'=>$data[$field['name']],'extra'=>$field['extra']))}
        {/case}
        {case value="news"}

        {:W('common/news/news', array('name'=>$field['name'],'value'=>$data[$field['name']],'extra'=>$field['extra']))}
        {/case}
        {case value="image"}
        <div id="image_{$field.name}"></div>
        {:W('common/image/image',
        array('name'=>$field['name'],'value'=>$data[$field['name']],'extra'=>$field['extra']))}
        {/case}

        {case value="checkbox|dynamic_checkbox"}
        {volist name="field.extra_array" id="vo"}
        <input type="checkbox" value="{$key}" name="{$field.name}[]" title="{$vo}" {in name="key" value="$data[$field['name']]" }checked {/in} >
        {/volist}
        {/case}
        {case value="editor"}
        <label class="textarea">
            {:W('common/editor/show', array('name'=>$field['name'],'value'=>$data[$field['name']],'style'=>"width:90%;
            height:100px;"))} </label>
        {/case}
        {case value="icon"}
        <div class="controls selectIcon" data-max="1" title="点击修改图标" rel="{$field.name}">
            <input type="hidden" name="{$field.name}" id="cover_id_{$field.name}"
                   value="{$data[$field['name']]|default=''}"/>
            <div class="upload-img-box">
                {notempty name="data[$field['name']]"}
                <div class="upload-pre-item2"><i class="layui-icon {$data[$field['name']]}"
                                                 style="font-size: 90px;"></i></div>
                <em class="edit_img_icon">&nbsp;</em>
                {/notempty}
            </div>
        </div>
        {/case}
        {case value="picture"}
        <div class="upload_file">
            <div class="uploadrow2" data-max="1" title="点击修改图片" rel="{$field.name}">
                <input type="file" id="upload_picture_{$field.name}">
                <input type="hidden" name="{$field.name}" id="cover_id_{$field.name}" value="{$data[$field['name']]}"/>
                <div class="upload-img-box">
                    {notempty name="data[$field['name']]"}
                    <div class="upload-pre-item2"><img width="100" height="100" src="{$data[$field['name']]|get_cover_url}"/></div>
                    <em class="edit_img_icon">&nbsp;</em>
                    {/notempty}
                </div>
            </div>
        </div>

        {/case}
        {case value="mult_picture"}
        <div class="mult_imgs">
            <div class="upload-img-view" id='mutl_picture_{$field.name}'>
                {notempty name="data[$field['name']]"}
                {php}$data[$field['name']] = explode(',', $data[$field['name']]);{/php}
                {volist name="data[$field['name']]" id="vo"}
                <div class="upload-pre-item22">
                    <img width="100" height="100" src="{$vo|get_cover_url}"/>
                    <input type="hidden" name="{$field.name}[]" value="{$vo}"/>
                    <em>&nbsp;</em>
                </div>
                {/volist}
                {/notempty}
            </div>
            <div class="upload_file">
                <div class="uploadrow2" data-max="9" title="点击上传图片" rel="{$field.name}">
                    <input type="file" id="upload_picture_{$field.name}">
                </div>
            </div>

        </div>
        {/case}
        {case value="file"}
        <div class="upload_file" rel="{$field.name}">
            <div id='upload_file_{$field.name}' class='uploadrow_file'></div>
            <input type="hidden" name="{$field.name}" value="{$data[$field['name']]}"
                   data-fileexts="{$field['validate_file_exts']}" data-maxsize="{$field['validate_file_size']}"/>
            <div class="upload-img-box">
                {notempty name="data[$field['name']]"}
                <div class="upload-pre-file"><span class="upload_icon_all"></span>{$data[$field['name']]|get_table_field=###,'id','name','File'}
                </div>
                {/notempty}
            </div>
        </div>

        {/case}
        {case value="user"}
        <div>
            <div class="userList common_add_list fl">
                {notempty name="data[$field['name']]"}
                <div class="item"
                     onClick="$.bctos.selectSingleUser('{:U ( 'weixin/UserCenter/lists_choose',array('only_body'=>1))}','{$field.name}', this);">
                    {php}
                    $userInfo = getUserInfo($data[$field['name']]);

                    {/php}
                    <img src="{$userInfo['headimgurl']}"/><br/><span>{$userInfo['nickname']}</span>
                    <input type="hidden" name="{$field.name}" value="{$data[$field['name']]}"/>
                    <span class="name">{$userInfo['nickname']}</span>
                </div>
                {else/}
                <a href="javascript:;" class="common_add_btn fl"
                   onClick="$.bctos.selectSingleUser('{:U ( 'weixin/UserCenter/lists_choose',array('only_body'=>1))}','{$field.name}',this);"></a>
                {/notempty}
            </div>
        </div>
        {/case}
        {case value="users"}
        <div>
            <div class="userList common_add_list fl">
                {notempty name="data[$field['name']]"}
                {php}
                $userIds = explode(',',$data[$field['name']]);
                {/php}
                {volist name="userIds" id="uid"}
                {php}
                $userInfo = getUserInfo($uid);

                {/php}
                <div class="item"
                     onClick="$.bctos.selectSingleUser('{:U ( 'weixin/UserCenter/lists_choose',array('only_body'=>1))}','{$field.name}', this);">
                    {php}
                    $userInfo = getUserInfo($data[$field['name']]);

                    {/php}
                    <img src="{$userInfo['headimgurl']}"/><br/><span>{$userInfo['nickname']}</span>
                    <input type="hidden" name="{$field.name}'[]" value="{$data[$field['name']]}"/>
                    <span class="name">{$userInfo['nickname']}</span>
                </div>
                {/volist}
                {/notempty}
                <a href="javascript:;" class="common_add_btn fl"
                   onClick="$.bctos.selectMutiUser('{:U ( 'weixin/UserCenter/lists_choose',array('only_body'=>1))}',9,'{$field.name}', this);"></a>
            </div>
        </div>
        {/case}
        {default /}
        <input type="text" class="layui-input" name="{$field.name}" value="{$data[$field['name']]}">
        {/switch}
        {notempty name="field['remark']"}<span class="form-text text-muted">（{$field['remark']|raw}）</span>{/notempty}
    </div>
</div>
{/if}
{/volist}
{$extra_html|raw|default=''}

<link href="__STATIC__/datetimepicker/css/datetimepicker.css?v={:SITE_VERSION}" rel="stylesheet" type="text/css">
<link href="__STATIC__/datetimepicker/css/dropdown.css?v={:SITE_VERSION}" rel="stylesheet" type="text/css">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.js"></script>
<script type="text/javascript"
        src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js?v={:SITE_VERSION}"
        charset="UTF-8"></script>
<script type="text/javascript">
    $(function () {
        var UploadFileExts = "{$UploadFileExts|default=''}";
        initUploadImg();
        if (UploadFileExts != "") {
            initUploadFile(function () {
            }, UploadFileExts);
        } else {
            initUploadFile();
        }

        $('.time').datetimepicker({
            format: 'yyyy-mm-dd hh:ii',
            language: "zh-CN",
            minView: 0,
            autoclose: true
        });
        $('.date').datetimepicker({
            format: 'yyyy-mm-dd',
            language: "zh-CN",
            minView: 2,
            autoclose: true
        });
        showTab();

        change_form();
        $('.layui-form').show();
        layui.form.on('select', function (data) {
            change_form();
        });
        layui.form.on('checkbox', function (data) {
            change_form();
        });
        layui.form.on('switch', function (data) {
            change_form();
        });
        layui.form.on('radio', function (data) {
            change_form();
        });
    });

    function in_array(search, array) {
        for (var i in array) {
            if (array[i] == search) {
                return true;
            }
        }
        return false;
    }
    function intersection(arr1, arr2){
        for(var i=0; i<arr1.length;i++){
            for(var j=0; j< arr2.length;j++){
                if(arr1[i]==arr2[j]){
                    return true;
                }
            }
        }
        return false;
    }

    //控制动态字段的显示与隐藏
    function change_form() {
        var post = form.val("xw-form");
        for (var p in post) {
            var test = p.split("[");
            if (test.length > 1) {
                if (!post.hasOwnProperty(test[0])) {
                    post[test[0]] = [post[p]];
                } else {
                    post[test[0]].push(post[p]);
                }
            }
        }
        $('.layui-form-item,.layui-inline').each(function () {
            var data = $(this).attr('show-set');

            if (data != '[]' && data != undefined) {
                data = JSON.parse(data);
                var check = true;
                for (var n in data) {
                    var val = post[n]==undefined ? 0:post[n];
                    if (typeof (val) == 'object') {
                        //计算两个数组的交集
                        var res = intersection(val, data[n]);
                        if (!res) {
                            check = false;
                            break;
                        }
                    } else {
                        if (!in_array(val, data[n])) {
                            check = false;
                            break;
                        }
                    }
                }
                if (!check) {
                    $(this).hide();
                } else {
                    $(this).show();
                }
            }
        });
    }
</script>

